DataStudioのフィルタ設定に論理積を元にした論理和(A or (B and C))を適用させてみた

DataStudioのフィルタ設定に論理積を元にした論理和(A or (B and C))を適用させてみた

DataStudioのフィルタ設定が論理積を積み上げるものだと認識したものの、必要なのは論理和の積み重ねでした。検索した結果、計算フィールドとパラメータがあれば求めている状況が実現できると分かり、色々試した末に実現できたステップを整理してみました。
Clock Icon2021.10.25

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

DataStudioでのレポート作成にて、特定パラメータをベースにしたグラフ変化及び、表示を空にしないために何らかの初期パラメータを用意しておきたい、と考えました。ただ、公式に一纏まりでの手順というものは見当たらず。

試行錯誤の末に手続きは判明したものの、次に立ちはだかったのは論理積を元にした論理和(A or (B and C))の組み合わせ。これを達成するために用いた複数機能の組み合わせをまとめてみました。今回の作業都合上、パラメータベースでのグラフ描画変更手続きや、初期パラメータ設定も行える手続きも含めています。

前提

手続き

以下の順番にて実施します。

  1. パラメータの追加
  2. 計算フィールドにてパラメータを元に判定する
  3. フィルタにて計算フィールドの結果を元に判定する
  4. グラフにフィルタを適用

2と3にて2段階判定を行っている理由として、以下3点があります。

  • フィルタは論理積(A and B)或いは論理和を元にした論理積((A or B) and (C or D))のみ対応
  • 今回は論理積を元にした論理和(A or (B and C))への対応が必要
  • 先ずは計算フィールドにて論理和及び論理積を元にした論理和の対処を行い、その結果をフィルタでの論理積に利用する

シンプルに論理積のみの積み上げでよければ当記事の手順に沿う必要はありません。

パラメータの追加

「リソース」から「追加済みのデータソースの管理」を選択します。

使用しているデータソースの「編集」を選択します。

右上の「パラメータを追加」を選択します。

項目 詳細
「パラメータ名」 グラフ内で指定するフィールド名を設定します。
「パラメータID」 とりあえずパラメータ名と同一のものを設定しておきます。
「デフォルト値」 パラメータを空にした場合に設定しておきたい初期値を入れておきます。

入力を終えたら「保存」を選択します。

「挿入」から「入力ボックス」を選択します。

レポート上に配置後、右側のプロパティパネルから「データ」タブを選択します。

「コントロールフィールド」を先程追加したパラメータに変更します。

パラメータを用いた判定を行う計算フィールドの追加

「リソース」から「追加済みのデータソースの管理」を選択します。

使用しているデータソースの「編集」を選択します。

右上の「フィールドを追加」を選択します。

項目 詳細
「フィールド名」 グラフ内で指定するフィールド名を設定します。
「項目ID」 設定した値がなければそのままにしておきます。
「計算式」 パラメータやデータソース内フィールドを使った、関数(IFCASE)も含む条件文を記入します。

入力を終えたら「保存」を選択します。

フィルタの追加

「リソース」から「フィルタの管理」を選択します。

「フィルタの追加」を選択します。

「項目を選択」に先程追加した計算フィールドを指定し、条件を指定します。ここで指定する条件は計算フィールドの計算式に応じて変わってきます。

入力を終えたら右下の「保存」を選択します。

グラフにフィルタを適用

レポート全体か、グラフ個別に適用によって手順が変わります。

レポート全体

  1. 「ファイル」から「レポート設定」を選択します。
  2. 右側の「レポート設定」から「レポートのフィルタ」に「フィルタを追加」から先程追加フィルタを選択します。

グラフ個別

  1. 適用したいグラフを選択して、右側のプロパティパネルから「データ」タブを選択します。
  2. 「レポートのフィルタ」に「フィルタを追加」から先程追加フィルタを選択します。

あとがき

ひと手間掛かりますが、これで論理積を元にした論理和を実現できるようになりました。

一度分かってしまえば特に苦労しない手続きですが、最初はどこを触ればよいのか分かりにくいかもしれません。迷った場合の参考になれば幸いです。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.